<?php

namespace SisesporteAdmin\Form;

use Zend\Form\Form,
    \Zend\Form\Element\Select,
    \Zend\Form\Element\File;

// use SisesporteAdmin\Filter\ServidorFilter;

class CadastrarServidorForm extends Form {

    protected $em;

    public function __construct($name = NULL, $em = NULL) {
        parent::__construct('servidor');
        $this->em  = $em;

        $this->setAttribute('method', 'post');
//         $this->setInputFilter(new ServidorFilter());

        $this->add(array(
           'name' => 'noPessoa',
            'options' => array(
                'type' => 'text',
                'label' => 'Nome Completo*:'
            ),
            'attributes' => array(
                'id' => 'noPessoa',
                'class' => 'input-xxlarge'
            )
        ));

         $this->add(array(
           'name' => 'dtNascimento',
            'options' => array(
                'type' => 'text',
                'label' => 'Data de Nascimento*:'
            ),
            'attributes' => array(
                'id' => 'dtNascimento',
                'class' => 'input-medium'
            )
        ));

         $this->add(array(
                 'name' => 'nuCpf',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'CPF*:'
                 ),
                 'attributes' => array(
                         'id' => 'CPF',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'nuIdentidade',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Identidade*:'
                 ),
                 'attributes' => array(
                         'id' => 'nuIdentidade',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'sqUf',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'UF:'
                 ),
                 'attributes' => array(
                         'id' => 'sqUf',
                         'class' => 'input-mini'
                 )
         ));

         $this->add(array(
                 'name' => 'dtExpedicao',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Data de Expedição:'
                 ),
                 'attributes' => array(
                         'id' => 'dtExpedicao',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'nuCep',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'CEP*:'
                 ),
                 'attributes' => array(
                         'id' => 'nuCep',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'noEndereco',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Endereço*:'
                 ),
                 'attributes' => array(
                         'id' => 'noEndereco',
                         'class' => 'input-xlarge'
                 )
         ));

         $this->add(array(
                 'name' => 'noComplemento',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Complemento:'
                 ),
                 'attributes' => array(
                         'id' => 'noComplemento',
                         'class' => 'input-xlarge'
                 )
         ));

         $this->add(array(
                 'name' => 'noBairro',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Bairro:'
                 ),
                 'attributes' => array(
                         'id' => 'noBairro',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'sqCidade',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Cidade:'
                 ),
                 'attributes' => array(
                         'id' => 'sqCidade',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'noTelefoneFixo',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Telefone Fixo*:'
                 ),
                 'attributes' => array(
                         'id' => 'noTelefoneFixo',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'noTelefoneMovel',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Telefone Móvel:'
                 ),
                 'attributes' => array(
                         'id' => 'noTelefoneMovel',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'noEmail',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'E-mail:*'
                 ),
                 'attributes' => array(
                         'id' => 'noEmail',
                         'class' => 'input-xxlarge'
                 )
         ));

         $this->add(array(
                 'name' => 'noPai',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Nome do pai*:'
                 ),
                 'attributes' => array(
                         'id' => 'noPai',
                         'class' => 'input-xxlarge'
                 )
         ));

         $this->add(array(
                 'name' => 'noMae',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Nome da mãe*:'
                 ),
                 'attributes' => array(
                         'id' => 'noMae',
                         'class' => 'input-xxlarge'
                 )
         ));

         $this->add(array(
                 'name' => 'nuFilho',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Quantidade de filhos*:'
                 ),
                 'attributes' => array(
                         'id' => 'nuFilho',
                         'class' => 'input-mini'
                 )
         ));

         $this->add(array(
                 'name' => 'noContato',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Em caso de emergência avisar:*'
                 ),
                 'attributes' => array(
                         'id' => 'noContato',
                         'class' => 'input-large'
                 )
         ));

         $this->add(array(
                 'name' => 'noTelefone',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Telefone:*'
                 ),
                 'attributes' => array(
                         'id' => 'noTelefone',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'deEspecialidade',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Cargo/Especialidade:*'
                 ),
                 'attributes' => array(
                         'id' => 'deEspecialidade',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'coMatricula',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Matrícula:*'
                 ),
                 'attributes' => array(
                         'id' => 'coMatricula',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'dtInicioAdmissao',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Data de Admissão no òrgão de Origem:'
                 ),
                 'attributes' => array(
                         'id' => 'dtInicioAdmissao',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'dtInicioAdmissaoSesp',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Admissão SESP:'
                 ),
                 'attributes' => array(
                         'id' => 'dtInicioAdmissaoSesp',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'dtFinalAdmissao',
                 'options' => array(
                         'type' => 'text',
                         'label' => 'Desligamento SESP:'
                 ),
                 'attributes' => array(
                         'id' => 'dtFinalAdmissao',
                         'class' => 'input-medium'
                 )
         ));

         $this->add(array(
                 'name' => 'txObservacao',
                 'type' => 'Textarea',
                  'options' => array(
                         'label' => 'OBS:',

                 ),
                 'attributes' => array(
                         'id' => 'txObservacao',
                         'rows'=>'6',
                         'cols'=>'10',
                         'style'=>'width: 80%; height: 80%'
                         )
         ));


        $orgaoExpedidor = new Select();
        $orgaoExpedidor->setLabel("Orgao Expedidor*:")
                ->setName("sqOrgaoExpedidor")
                ->setOptions(array('value_options' => $this->getResultArray('Sisesporte\Entity\OrgaoExpedidor'),
                                    'empty_option' => '-- Selecione --')
        );
        $this->add($orgaoExpedidor);

        $estadoCivil = new Select();
        $estadoCivil->setLabel("Estado Civil*:")
        ->setName("sqEstadoCivil")
        ->setOptions(array('value_options' => $this->getResultArray('Sisesporte\Entity\EstadoCivil'),
                'empty_option' => '-- Selecione --')
        );
        $this->add($estadoCivil);

        $cargaHoraria = new Select();
        $cargaHoraria->setLabel("Carga Horária:")
        ->setName("nuCargaHoraria")
        ->setOptions(array('value_options' => array(),
                'empty_option' => '-- Selecione --')
        );
        $this->add($cargaHoraria);

        $escolaridade = new Select();
        $escolaridade->setLabel("Escolaridade:")
        ->setName("sqGrauEscolaridade")
        ->setOptions(array('value_options' => $this->getResultArray('Sisesporte\Entity\GrauEscolaridade'),
                'empty_option' => '-- Selecione --')
        );
        $this->add($escolaridade);

        $lotacao = new Select();
        $lotacao->setLabel("Lotação*:")
        ->setName("noLotacao")
        ->setOptions(array('value_options' => array(),
                'empty_option' => '-- Selecione --')
        );
        $this->add($lotacao);

        $orgaoOrigem = new Select();
        $orgaoOrigem->setLabel("Órgão de Origem:")
        ->setName("noOrgaoAdmissao")
        ->setOptions(array('value_options' => array(),
                'empty_option' => '-- Selecione --')
        );
        $this->add($orgaoOrigem);

        $this->add(array(
           'name' => 'submit',
            'type' => 'Zend\Form\Element\Submit',
            'attributes' => array(
                'value' => 'Cadastrar',
                'title' => 'Cadastrar',
                'class' => 'btn btn-primary pull-right'
            )
        ));

        $this->add(array(
                'name' => 'submit',
                'type' => 'Zend\Form\Element\Submit',
                'attributes' => array(
                        'value' => 'Limpar',
                        'title' => 'Limpar',
                        'class' => 'btn btn-primary pull-right'
                )
        ));

        $this->add(array(
                'name' => 'submit',
                'type' => 'Zend\Form\Element\Submit',
                'attributes' => array(
                        'value' => 'Cancelar',
                        'title' => 'Cancelar',
                        'class' => 'btn btn-primary pull-right'
                )
        ));
    }

    protected function getResultArray($repository) {
        $repo = $this->em->getRepository($repository);
        return $repo->fetchPairs();
    }
}